import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import "./assets/css/initialize.css";
import SlideVerify from 'vue-monoplasty-slide-verify';

import { Message } from 'element-ui';

// 开发模式 
Vue.config.productionTip = true;

Vue.use(ElementUI);
Vue.use(SlideVerify);

// 时间戳
import general from './assets/js/general.js'
Vue.prototype.$general = general;

// 接口
import api from './assets/js/api.js'
Vue.prototype.$api = api;

// 路由拦截开关
let switchFlag = false;
if (switchFlag) {
  router.beforeEach((to, from, next) => {
    document.title = to.meta.title || '';
    // 这里先获取下用户信息
    // 里面包含了用户权限，用户各种信息等
    const user = JSON.parse(sessionStorage.getItem('user'));
    // 这里必须加上to.path !== 'login'的判断，不然会陷入无限循环，
    // 因为逻辑是第一次进来，判断用户信息不存在，即!user为true，由于使用的是next('/login')而非next()，
    // 会再次进入路由跳转，next()方法没有参数是直接进入页面，不会再次进入路由拦截，有参数则会，因为跳转，
    // 所以再次进入路由，再次判断，再次进入路由，再次判断，循环往复无限循环
    // 所以一定要加to.path !== 'login'的判断
    if (to.path == '/') {
      next();
    } else if (!user && to.path !== '/login') {
      next('/login');
      Message({
        showClose: true,
        message: '请重新登录',
        type: 'warning'
      })
    }
    // else if (to.meta.permission) {
    //     user.permission === to.meta.permission ? next() : message.alert('没有权限');
    // }
    else {
      next();
    }
  });

}
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
